草庐IT

php - MySQL 和 INT auto_increment 字段

全部标签

go - 您可以通过 json 键字段动态迭代 Go 中的结构字段吗?

typeParamsstruct{MyNumstring`json:"req_num"`}所以我需要将MyNum的值分配给另一个变量,给定一个“req_num”字符串键,用于我在beego框架。这在Go中是否可行?如果可行,如何实现?我查看了反射库,找不到方法。这是我正在尝试做的一个例子。params是一个Params类型的变量,MyNum的值初始化为“123”让我们说。f目前没有得到“123”。当我将其记录到控制台时,它显示""。b:="req_num"r:=reflect.ValueOf(params)f:=reflect.Indirect(r).FieldByName(b)编辑:

json - Golang 取消设置结构字段

在Golang中,我有以下具有三个字段的结构typePersonstruct{namestringageintrankint}对于处理,我需要一个排名字段,但对于输出,我想从结构中排除排名字段,因为我直接将上述结构传递给JSON编码器以抛出响应。有什么方法可以取消Struct中的rank字段设置? 最佳答案 要取消设置字段,请为其分配零值,例如:varpPersonp.rank=0还知道,如果你想使用Person来处理JSON,你必须导出字段,未导出的字段不会被encoding/json包处理,所以将Person更改为:typePe

go - SHA1 encoding with secret,相当于PHP hash_hmac

我有以下PHP函数publicfunctionencodePassword($raw,$salt){returnhash_hmac('sha1',$raw.$salt,$this->secret);}我需要将其翻译成Go。我找到了以下示例,但它不涉及key。https://gobyexample.com/sha1-hashes我如何在Go中创建一个函数,它产生与PHP的hash_hmac完全相同的结果?Update:AfterLeo'sanswer,foundthisresourcewithhmacexamplesinmanylanguages:https://github.com/d

unit-testing - 如何在不同的包中测试未导出的结构字段?

我有一个用工厂创建对象的包。结构具有未导出的字段,例如:packagefetchertypeGitFetcherstruct{uristring}我有另一个包,它解析一些配置文件,然后构建另一个使用上述对象的对象:packageconfigtypeSourcestruct{fetcherGitFetcher}我正在尝试测试我的config包。我想构建一些预期的对象,但由于我的测试在config中,而我的GitFetcher在fetcher中,我不能只创建对象我想要,例如:packageconfigexpected:=GitFetcher{uri:"example.com/repo.gi

pointers - 如何访问结构字段,它是结构内部的指针,结构本身就是一个指针

在我下面的代码中,为什么*bikeSlice[0].Type返回给我的是Type字段的值而不是内存地址?为什么*bikeSlice[0]返回{Type:0xc0000641c0}虽然*bikeSlice[0].Type似乎自动取消引用类型字段?packagemainimport"fmt"typeBikestruct{Type*string}funcmain(){type1:="road"bike1:=Bike{Type:&type1,}type2:="mountain"bike2:=Bike{Type:&type2,}varbikeSlice[]*BikebikeSlice=appen

mysql - 查看 "open file descriptors"

我有一个网页,后端是用Go编写并在Ubuntu上运行,经过一定天数和事件后,就像发条一样,goroutine会引发“panic”并开始出现502代理错误。我在Go中遇到的错误是“打开的文件太多”。经过一些研究,我觉得我已经将问题缩小到“打开的文件描述符”过多。我已经阅读了不同的建议解决方案,这些解决方案似乎对不同的人有不同的结果。这一切都很好,但如果我想实时查看这些假定打开的文件描述符,以便我可以真正查明这些"file"是什么,我该怎么做呢?我问这个是因为我不想猜测我的Go程序的哪些部分导致了这个问题,我想看看我是否可以进一步缩小范围(可能是一个没有正确关闭的MySQL套接字,或者一个

go - 等效结构上字段的接口(interface)转换

有没有一种直接的方法可以将某些字段为“通用”(接口(interface){})的结构转换为另一种具有相同字段名称但“强类型”(>int,string,等等)?让我们说,给定定义:packagemainimport("fmt")typeGenericDatastruct{HardintSoftinterface{}}typeDatastruct{HardintSoftint}typeGenericDataGeneratorfunc()GenericDatafuncgenerateGenericData()interface{}{returnGenericData{1,2}}funcret

Go Web 服务 - 未定义的类型没有字段或方法

这个问题在这里已经有了答案:Functioninsamepackageundefined(10个答案)关闭8个月前。我正在尝试在Web服务中整合路由功能。包main有两个值得关注的文件,route.go和main.go。在route.go中,我定义路由如下:packagemainimport("github.com/justinas/alice""net/http")func(app*Application)Routes()http.Handler{standardMiddleware:=alice.New(app.logRequest)mux:=http.NewServeMux()m

php - Go中如何实现PHP的gzopen?

我必须将PHP脚本转换为Go,现在遇到了一个问题(我预见会有更多问题)。在脚本中,它使用gzopen打开.gz和非.gz文件,然后获取读取的数据并返回它的MD5哈希版本。我尝试过使用zlib.NewReader、gzip.NewReader甚至flate,但它们都不起作用。有人能指出我正确的方向吗?file,err:=os.Open("somefile.dat")iferr!=nil{returnerr}//rc:=flate.NewReader(f)//error:corruptinputbeforeoffset5//rc,err:=zlib.NewReader(f)//error:

go - 编码 xml 字段时如何使用结构标签?

问题更多的是“可以去做吗?”然后解决实际问题。packagemainimport("encoding/xml""fmt""log")typeExamplestruct{FloatFloatFloat3Float`printf:"%.3f"`Float7Float`printf:"%.7f"`}typeFloatfloat64funcmain(){e:=Example{Float:1.0,Float3:2.0,Float7:3.0,}b,err:=xml.MarshalIndent(e,"","")iferr!=nil{log.Fatal(err)}fmt.Println(string(